﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace 文件读写
{
    public partial class Form1 : Form
    {
        //条件判断
        bool flag1 = false;
        bool flag2 = false;
        bool flag3 = false;
        //读取的两文件合并成一个字符串，写入data.txt
        string s = "";

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //判断是否已经选取了两个文件，选取后无法再选取,自身也不能选两次
            if (!((flag1 && flag2) || (flag2 && flag3) || (flag3 && flag1))&&(!flag1))
            {
                flag1 = true;
                textBox1.Text += "读取123.txt\r\n";
                try
                {
                    // 创建一个 StreamReader 的实例来读取文件 
                    // using 语句也能关闭 StreamReader
                    // 注意：相对于debug文件夹的.exe文件路径!!!!!!!!!!!!!!!!!!!///////////////////////////
                    using (StreamReader sr = new StreamReader("../../../choice/123.txt"))
                    {
                        string line;

                        // 从文件读取并显示行，直到文件的末尾 
                        while ((line = sr.ReadLine()) != null)
                        {
                            s += line;

                        }
                        sr.Close();
                    }
                }
                catch
                {
                    // 向用户显示出错消息
                    textBox1.Text += "读取错误\r\n";
                }
                Write();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //判断是否已经选取了两个文件，选取后无法再选取,自身也不能选两次
            if (!((flag1 && flag2) || (flag2 && flag3) || (flag3 && flag1))&&(!flag2))
            {
                flag2 = true;
                textBox1.Text += "读取456.txt\r\n";
                try
                {
                    // 创建一个 StreamReader 的实例来读取文件 
                    // using 语句也能关闭 StreamReader
                    using (StreamReader sr = new StreamReader("../../../choice/456.txt"))
                    {
                        string line;

                        // 从文件读取并显示行，直到文件的末尾 
                        while ((line = sr.ReadLine()) != null)
                        {
                            s += line;

                        }
                        sr.Close();
                    }
                }
                catch
                {
                    // 向用户显示出错消息
                    textBox1.Text += "读取错误\r\n";
                }
                Write();
            }
              
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //判断是否已经选取了两个文件，选取后无法再选取,自身也不能选两次
            if (!((flag1 && flag2) || (flag2 && flag3) || (flag3 && flag1))&&(!flag3))
            {
                flag3 = true;
                textBox1.Text += "读取789.txt\r\n";
                try
                {
                    // 创建一个 StreamReader 的实例来读取文件 
                    // using 语句也能关闭 StreamReader
                    using (StreamReader sr = new StreamReader("../../../choice/789.txt"))
                    {
                        string line;

                        // 从文件读取并显示行，直到文件的末尾 
                        while ((line = sr.ReadLine()) != null)
                        {
                            s += line;

                        }
                        sr.Close();
                    }
                }
                catch
                {
                    // 向用户显示出错消息
                    textBox1.Text += "读取错误\r\n";
                }
                Write();
            }
            
        }
        //将选取的两个文件内容合并写入data.txt
        private void Write()
        {
            try
            {
                //如果已经选取了三个文件的任意两个
                if ((flag1 && flag2) || (flag2 && flag3) || (flag3 && flag1))
                {
                    using (StreamWriter sw = new StreamWriter("../../../Data/data.txt"))
                    {
                        sw.WriteLine(s);
                        sw.Close();
                    }
                    string line = "";
                    using (StreamReader sr = new StreamReader("../../../Data/data.txt"))
                    {
                        while ((line = sr.ReadLine()) != null)
                        {
                            textBox1.Text += "输出合并后的文件data.txt的内容：" + "\r\n";
                            textBox1.Text += line +"\r\n";
                            textBox1.Text += "程序结束\r\n";
                        }
                        sr.Close();
                    }
                }
            }
            catch
            {
                textBox1.Text += "写入错误\r\n";
            }
           
        }
    }
}
